/*!
 * @file comhan.h
 * @brief Provides main program loop and handles input commands.
 */

/* Function Prototypes */

/* commands */
int exitProgram(char* command, char* arguments);
int listDir(char* command, char* arguments);
int displayVersion(char* command, char* arguments);
int displayDate(char* command, char* arguments);
int help(char* command, char* arguments);
int setDate(char *command, char *arguments);
int createNewPCB(char* command, char* arguments);
int deletePCB(char* command, char* arguments);
int blockPCB(char* command, char* arguments);
int unblockPCB(char* command, char* arguments);
int suspendPCB(char* command, char* arguments);
int setPriority(char* command, char* arguments);
int resumePCB(char* command, char* arguments);
int print(char* command, char* arguments);
int r3dispatch(char *command, char *argument);
int r3loader(char *command, char *argument);
int r4loader(char *command, char *argument);
int T800(char *command, char *argument);

/* all others */
int output(char *buff, int reset);
int commandParser(char *input);
int initComHan();
void printSingle(pcb *currentPCB);
char* getInput();
void setStack(pcb *temp, void (*process)());
void T1000(pcb *a);
